﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once
#include <string>
#include "OwnerPtr.h"
#include "GcmpUiViewInterface.h"

namespace gcmp
{
    class IUserDragEventData;

    /// \brief 用户拖放管理器
    class GCMP_UI_VIEW_INTERFACE_EXPORT IGcmpUserDrag
    {
    public:
        /// \brief 设置需要拖放的数据
        /// \param pData 拖放数据的指针
        ///
        /// \return void
        virtual void SetDragEventData(OwnerPtr<IUserDragEventData> pData) = 0;

        /// \brief 设置拖动过程中表示数据的图片
        /// \param pixmapPath 图片路径
        virtual void SetDragPixmap(const std::wstring& pixmapPath) = 0;

        /// \brief 启动拖放操作
        ///
        /// \return void
        virtual void Execute() = 0;
    };
}